package com.zhiquan.cai.proxy;

import com.zhiquan.cai.target.Girl;

/**
 * 代理类（AV女艺人的经纪人）
 */
public class Qiao implements Girl{
    private Girl g;

    public Girl getG() {
        return g;
    }

    public void setG(Girl g) {
        this.g = g;
    }

    public Qiao(Girl g) {
        this.g = g;
    }

    private void doSomethingBefore() {
        System.out.println("约会之前");
        System.out.println("代理：老板，这个我试过，还不错，介绍给你！");
    }

    private void doSomethingAfter() {
        System.out.println("约会之后");
        System.out.println("代理：老板，感觉怎么样？");
    }

    /**
     * 约会
     * @param length
     * @return
     */
    @Override
    public boolean dateing(float length) {
        //代理的作用：对功能的增强

        //前置的增强
        doSomethingBefore();

        //真正的服务还是由被代理对象来提供
        boolean res = this.g.dateing(length);

        //后置的增强
        doSomethingAfter();

        return res;
    }
}
